* {
	margin: 0;
	padding: 0;
}

body {
	background: black;
	
}

.heart {
	position: relative;
	width: 200px;
	margin: 5rem auto;
	height: 260px;
	animation: rot 15s linear infinite;
	transform-style: preserve-3d;
	/*perspective: 800px;*/
}

@keyframes rot {
	from {
		transform: rotateY(0deg) rotateZ(0deg);
	}
	to {
		transform: rotateY(360deg) rotateZ(360deg);
	}
}

.heart div.rib {
	position: absolute;
	width: 200px;
	height: 260px;
	top: 0;
	left: 0;
	border: 1px solid red;
	border-width: 1px 1px 0 0;
	border-radius: 50% 50% 0/40% 50% 0;
}

.cube {
	position: relative;
	height: 100px;
	width: 100px;
	transform-style: preserve-3d;
	transform: translateX(60px) translateY(60px);
}

.cube div {
	position: absolute;
	width: 100%;height: 100%;
}
.cube div:nth-child(1){
	top: -100px;
	transform-origin: bottom;
	transform: rotateX(90deg);
}
.cube div:nth-child(2){
	top: 100px;
	transform-origin: top;
	transform: rotateX(-90deg);
}
.cube div:nth-child(3){
	left: -100px;
	transform-origin: right;
	transform: rotateY(-90deg);
}
.cube div:nth-child(4){
	left: 100px;
	transform-origin: left;
	transform: rotateY(90deg);
}
.cube div:nth-child(5){
	transform: translateZ(-100px);
}
.cube div:nth-child(6){
}

